package com.supeng.PMdepot;

import android.app.Application;
import android.content.Context;
import android.os.Process;
import android.util.Log;

import com.yanzhenjie.nohttp.InitializationConfig;
import com.yanzhenjie.nohttp.NoHttp;
import com.yanzhenjie.nohttp.URLConnectionNetworkExecutor;
import com.yanzhenjie.nohttp.cache.DBCacheStore;
import com.yanzhenjie.nohttp.cookie.DBCookieStore;


/**
 * Created by Supeng on 2018/8/16.
 */

public class MApplication extends Application {
    private static Context mContext;

    public static MApplication getInstance() {
        return instance;
    }

    private static MApplication instance;
    public static String PACKAGE_NAME = "";
    private static int mainId;
    @Override
    public void onCreate() {
        super.onCreate();
        mainId = Process.myTid();
        Log.i("supeng", "Thread ID=" + mainId);
        instance = this;
        mContext = getApplicationContext();
        PACKAGE_NAME = getPackageName();
        //初始化网络环境
        initNoHttp();
    }
    private void initNoHttp(){
        InitializationConfig config = InitializationConfig.newBuilder(this)
                // 全局连接服务器超时时间，单位毫秒，默认10s。
                .connectionTimeout(8 * 1000)
                // 全局等待服务器响应超时时间，单位毫秒，默认10s。
                .readTimeout(8 * 1000)
                // 配置缓存，默认保存数据库DBCacheStore，保存到SD卡使用DiskCacheStore。
                .cacheStore(
                        // 如果不使用缓存，setEnable(false)禁用。
                        new DBCacheStore(this).setEnable(true)
                )
                // 配置Cookie，默认保存数据库DBCookieStore，开发者可以自己实现CookieStore接口。
                .cookieStore(
                        // 如果不维护cookie，setEnable(false)禁用。
                        new DBCookieStore(this).setEnable(true)
                )
                // 配置网络层，默认URLConnectionNetworkExecutor，如果想用OkHttp：OkHttpNetworkExecutor。
                .networkExecutor(new URLConnectionNetworkExecutor())
                .build();
        NoHttp.initialize(config);
    }
    public static Context getContext() {
        return mContext;
    }
}
